Diese Frage hat hier bereits Antworten: Kehren Sie eine Zeichenfolge in Python um (29 Antworten) Vor 4 Jahren geschlossen. Ich versuche, eine Zeichenfolge umzukehren und verwende den folgenden Code, aber der resultierende Wert für die umgekehrte Liste ist Keine. Der Code: str_a = 'Das ist stirng' rev_word = str_a.split () rev_word = rev_word.reverse () rev_word = '' .join (rev_word) Es gibt den TypeError zurück. Warum?
2021-01-15 08:10:44
.reverse () gibt None zurück. Daher sollten Sie es keiner Variablen zuweisen. Verwenden Sie stattdessen Folgendes: stra = 'Dies ist eine Zeichenfolge' revword = stra.split () revword.reverse () revword = ''. join (revword) Ich habe den Code auf IDEOne für Sie ausgeführt, damit Sie die Ausgabe sehen können. (Beachten Sie auch, dass die Ausgabe stringaisThis ist. Möglicherweise möchten Sie stattdessen '' .join (revword) mit einem Leerzeichen verwenden.) Beachten Sie auch, dass die von Ihnen angegebene Methode nur die Wörter und nicht den Text umkehrt. @ ron.rothman hat einen Link bereitgestellt, der detailliert beschreibt, wie eine Zeichenfolge in ihrer Gesamtheit umgekehrt wird. | Dies ist meine persönliche Lieblingsmethode, um eine Zeichenfolge umzukehren: stra = "Dies ist eine Zeichenfolge" revword = stra [:: - 1] print (revword) # "gnirts a si sihT oder, wenn Sie die Wortreihenfolge umkehren möchten: revword = "" .join (stra.split () [:: - 1]) print (revword) # "string a is This" :) :) | Verschiedene Umkehrungen an einer Saite: instring = 'Dies ist eine Zeichenfolge' reversestring = instring [:: - 1] print reversestring # gnirts a si sihT wordsreversed = '' .join (Wort [:: - 1] für Wort in instring.split ()) print wordsreversed # sihT si a gnirts revwordorder = '' .join (Wort für Wort in instring.split () [:: - 1]) print revwordorder # string a is This revwordandorder = '' .join (Wort [:: - 1] für Wort in instring.split () [:: - 1]) print revwordandorder # gnirts a si sihT | Wenn ein Objekt über eine Methode wie [] .reverse () verfügt, führt es im Allgemeinen diese Aktion für das Objekt aus (dh die Liste wird sortiert und gibt nichts zurück, keine), im Gegensatz zu integrierten Funktionen wie sortiert, für die eine Aktion ausgeführt wird ein Objekt und gibt einen Wert zurück (dh die sortierte Liste) | >>> s = 'Dies ist eine Zeichenfolge' >>> s [:: - 1] 'gnirts a si siht' >>> '' .join (umgekehrt) 'gnirts a si siht' | Die for-Schleife wiederholt die Zeichenfolge vom Ende (letzter Buchstabe) bis zum Anfang (erster Buchstabe). >>> s = 'Sie können dies auch versuchen:]' >>> rev = '' >>> für i im Bereich (len (s) - 1, -1, -1): ... rev + = s [i] >>> rev ']: oot siht yrt nac uoY' | Basierend auf Kommentaren und anderen Antworten: str_a = 'Dies ist eine Zeichenfolge' rev_word = '' .join (umgekehrt (str_a.split ())) Die Methodenverkettung funktioniert schließlich in Python ... | Das Umkehren der Liste kann auf mehrere Arten erfolgen. Wie in den vorherigen Antworten erwähnt, sind zwei sehr prominent, einer mit der Funktion reverse () und zwei mit der Slicing-Funktion. Ich gebe einige Einblicke, welche wir bevorzugen sollten. Wir sollten immer die Funktion reverse () zum Umkehren einer Python-Liste verwenden. Zwei Gründe, eine Umkehrung an Ort und Stelle und zwei schneller als andere. Ich habe einige Zahlen, um meine Antwort zu stützen, In [15]: len (l) Out [15]: 1000 In [16]:% timeit -n1 l.reverse () 1 Schleifen, am besten 3: 7,87 µs pro Schleife In [17]:% timeit -n1 l [:: - 1] 1 Schleife, am besten 3: 10 µs pro Schleife Bei einer Liste mit 1000 Ganzzahlen war die Funktion reverse () im Vergleich zum Schneiden besser. | Nicht die Antwort, die Sie suchen? Durchsuchen Sie andere Fragen mit dem Tag Python oder stellen Sie Ihre eigene Frage.